<?php
require_once(SYSROOT.'vendors'.DIRECTORY_SEPARATOR.'smarty'.DIRECTORY_SEPARATOR.'Smarty.class.php');

class ViewHelper extends Smarty {

	protected $_layout_  = 'layout.htm';
	protected $_use_layout_  = true;

	/**
	 * 支持layout的smarty实现
	 * 
	 * @param boolean $use_layout false表示使用不使用layout，默认为false
	 * @param string  $layout  layout模板文件，它在layout/目录下
	 */
	public function ViewHelper($use_layout = false, $layout = 'layout.htm')
	{
		$this->_use_layout_ = $use_layout;
		$this->_layout_ = $layout;
		
		// if(Context::getConfig('is_test')) {
		// 	$this->template_dir = WEBROOT . 'templates_test';
		// 	$this->_use_layout_ = true;
		// } else {
		// 	$this->template_dir = WEBROOT . 'templates';
		// }
		$this->template_dir = WEBROOT . 'templates';
		$this->compile_dir = WEBROOT . 'templates_c';
		$this->config_dir = WEBROOT . 'configs';
		$this->cache_dir = WEBROOT . 'cache';
		
		// $site_title = Context::getConfig('site_title');
		// if(!$site_title) $site_title = '火车网';
		$this->assign('site_title',SITE_TITLE);
		$this->assign('site_logo',SITE_LOGO);
		$this->assign('site_desc',SITE_DESC);
		$this->assign('site_id',SITE_ID);
	}

	/**
	 * 重载Smarty的dispaly, 以支持layout
	 * 
	 * @see system/vendors/smarty/Smarty#display($resource_name, $cache_id, $compile_id)
	 */
	public function display($page, $pid = null) {
		if($this->_use_layout_) {
			/** 使用 layout 机制 */
			$this->assign('CONTENT_FOR_LAYOUT', $page);
			// 最后的smarty显示处理，调用Smarty原始函数
			parent::display('layout/' . $this->_layout_, $pid);
		} else {
			parent::display($page, $pid);
		}
	}

	//使用new的方式有利于代码自动提示
	//	static private $instance = null;
	//	static public function getInstance()
	//	{
	//		if(!self::$instance)
	//		{
	//			self::$instance = new ViewHelper();
	//		}
	//
	//		return self::$instance;
	//	}

}